面试知识库
困难

AI Agent系统设计方法论#

一句话答案#

Agent 系统设计的套路是「先问要不要 Agent → 再定架构与规划范式 → 自底向上搭七层(工具/记忆/知识/控制/评测/可观测/成本安全)」;面试开放题答得好的关键是先界定边界和非功能需求,再按分层框架展开,每个选型都给出 tradeoff 和退路,而不是一上来就画 ReAct 循环。

核心要点

1. 第一步:要不要用 Agent(最容易被追问的决策)#

不要为了用 Agent 而用 Agent。按”任务确定性 / 步骤是否动态”决策:

任务是否需要"动态决策下一步"?
├── 否,单轮问答          → 纯 LLM / Prompt
├── 否,流程固定可枚举     → Workflow(固定流水线/状态机)
├── 是,但只是查资料       → RAG(检索增强)
└── 是,需自主规划+调工具+根据观察调整 → Agent
    └── 单 Agent 扛不住(角色多/职责杂)→ 多 Agent
plaintext

面试金句:“Agent 的成本是不确定性——延迟高、token 贵、难调试。能用 Workflow 解决就别上 Agent,能规则化的决策(如工具选择)就别交给 LLM。“

2. 第二步:架构与规划范式选型#

维度选项何时用
规划范式ReAct / Plan-and-Execute / Reflection简单交互 ReAct;长任务先 Plan 再 Execute;高质量要求加 Reflection
编排架构单 Agent / Supervisor-Worker / 去中心化多 Agent职责单一用单 Agent;多角色协作用 Supervisor-Worker;对等协商用去中心化
决策方式LLM 决策 / 规则引擎 / 混合可枚举的决策走规则(快、可测、确定),开放决策才交 LLM

详见 Agent设计模式多Agent协作架构意图识别与任务路由

3. 第三步:自底向上的七层设计框架#

记忆口诀「工记知,控评观本」——设计/答题时逐层过一遍:

#关键决策对应笔记
1具层Schema 设计、权限分级、MCP 标准化、幂等与重试[Function Calling与工具编排](/topics/ai-llm/Function Calling与工具编排)、MCP协议原理
2忆层工作/短期/长期三层、token 预算、压缩、写回策略Agent记忆与上下文工程长期记忆治理与多租户隔离
3识层RAG 分块/混合检索/重排、知识更新与增量索引RAG架构与实现RAG分块与召回策略、[Agentic RAG与高级检索](/topics/ai-llm/Agentic RAG与高级检索)
4制层Reflection 质量回环、结构化输出、Guardrails 护栏Reflection与自我修正模式结构化输出与约束解码Guardrails与输出安全护栏
5测层离线评测集、在线指标、LLM-as-Judge、回归Agent评测平台设计LLM评测方法
6测层Trace(每步可追溯)、Metrics、Checkpoint 断点续跑、降级Agent可观测性与质量保障、[Agent Runtime与Checkpoint机制](/topics/ai-llm/Agent Runtime与Checkpoint机制)
7(成本/安全)层模型级联、语义缓存、流式、并行;注入防御、多租户隔离与配额AI应用成本与质量量化治理、[Agent安全与Prompt Injection防御](/topics/ai-llm/Agent安全与Prompt Injection防御)、多租户隔离与配额治理

4. 非功能需求清单(开放题加分项)#

面试官最爱追的不是功能,是这些:延迟(首 token / 端到端)、成本(单次 query 价格)、准确率/幻觉率、并发、可观测、降级、安全合规、多租户。开场就主动锁定这些约束,能直接把答案拉到资深档。

5. 通用降级与”退路”思维#

每个外部依赖都要有退路,这是生产 Agent 与 Demo 的本质区别:

LLM 失败    → 规则路由 / 缓存兜底 / 降级话术
检索失败    → 多路检索互为备份(向量挂了走 BM25)
重排失败    → 关键词打分兜底
工具失败    → 备选工具 → 纯 LLM 回答 → 转人工
反思超预算  → 跳过反思直接输出
plaintext

案例一:企业智能客服 Agent(检索+对话型,高并发)#

场景:电商客服,处理订单查询、退换货、政策咨询,高并发、低延迟、强合规。

设计层决策理由 / tradeoff
要不要 Agent混合:意图路由用规则+小模型,复杂工单才进 Agent80% 是高频简单问题,规则/RAG 直接答;只有跨域复杂问题上 Agent,控成本控延迟
架构单 Agent + 意图路由,ReAct角色单一,无需多 Agent;路由先分流
工具层查订单/查物流/发起退款(退款=write 权限需确认)高风险工具分级:只读自动、退款需用户二次确认 / 人工审批
记忆层短期=本次会话;长期=用户历史订单与偏好多轮上下文要记住”刚才问的那个订单”
知识层政策文档 RAG,混合检索+重排政策更新频繁,增量索引;答案须可溯源到原文
控制层输出 Guardrails(话术合规、PII 脱敏)+ 不支撑就拒答客服场景合规红线高,宁可转人工不可乱答
评测层意图准确率、答案正确率、转人工率、用户满意度转人工率是核心业务指标
观测层全链路 Trace + 实时告警;会话可回放投诉时要能复盘”机器人说了什么”
成本/安全小模型兜底高频问题 + 语义缓存(FAQ 命中率高)+ 注入防御FAQ 高度重复,缓存命中率可观;防”诱导客服机器人越权”

串联点:意图路由 → RAG → Guardrails → 人工兜底,是”检索对话型 Agent”的典型骨架。


案例二:数据分析 / 运维 Agent(规划+行动型,高风险)#

场景:自然语言提问 → Agent 自主查库、跑脚本、生成图表 / 执行运维操作。

设计层决策理由 / tradeoff
要不要 Agent必须 Agent步骤动态:先看 schema 再写 SQL,按结果决定下一步,典型需要自主规划
架构Plan-and-Execute + Supervisor-Worker(Planner / SQL Worker / 图表 Worker / 运维 Worker)长任务先出计划再执行;多专业角色拆 Worker,新增能力只加 Worker
工具层查 schema / 执行 SQL(只读 vs 写分级)/ 跑脚本(沙箱)/ 执行运维命令(高危=人工审批)高危操作必须 Human-in-the-loop;脚本在沙箱跑限权限
记忆层工作记忆存中间结果(查到的 schema、上一步 SQL 结果);长期存常用查询模板中间结果是后续步骤的输入,token 预算要管
知识层RAG 检索表结构文档 / 历史 SQL / runbook让 Agent 知道库里有什么、运维 SOP 是什么
控制层Reflection(SQL 跑错→读报错→改写重试)+ 结构化输出(图表配置走 Schema)有客观信号(SQL 能否执行)做反思判停,比自评可靠
评测层任务完成率、SQL 正确率、危险操作拦截率行动型 Agent 评”做对了吗”而非”答得好吗”
观测层Trace 每步工具调用 + Checkpoint(长任务断点续跑)+ 每步可审计长任务中途失败要能从断点恢复,不重跑全流程
成本/安全强模型做规划、弱模型做简单子任务;最小权限 + 沙箱 + 审批是安全核心行动型 Agent 风险在”误删库/误操作”,权限和审批比省钱更重要

串联点:Plan→Execute 循环 + Reflection 自修正 + 高危操作 HITL + Checkpoint 续跑,是”行动规划型 Agent”的典型骨架;与案例一的对比恰好覆盖 Agent 的两大类形态。

面试回答(2分钟版)

拿到 Agent 系统设计题,我不会一上来画 ReAct 循环,而是分三步走。第一步先界定要不要用 Agent——能用纯 RAG 或固定 Workflow 解决就不上 Agent,因为 Agent 的代价是不确定性,延迟高、贵、难调试;能规则化的决策比如工具选择也尽量别交给 LLM。第二步定架构和规划范式:简单交互用 ReAct,长任务用 Plan-and-Execute,多角色协作用 Supervisor-Worker。第三步是自底向上搭七层,我有个口诀叫”工记知控评观本”:工具层管 Schema 和权限分级,记忆层管三层记忆和 token 预算,知识层是 RAG 检索重排,控制层是 Reflection、结构化输出和 Guardrails 护栏,评测层是离线评测集加在线指标,观测层是 Trace、Checkpoint 和降级,最后是成本和安全层做级联缓存和多租户隔离。整个过程我会先锁定非功能需求——延迟、成本、准确率、并发、降级、合规,这些才是面试官真正想听的。举个对比,检索对话型的客服 Agent 重点在意图路由、RAG 和合规护栏,高频问题用规则和缓存兜底;而行动规划型的数据分析 Agent 重点在 Plan-Execute、工具沙箱、高危操作人工审批和 Checkpoint 断点续跑,这两类恰好覆盖 Agent 的两大形态。最后每个外部依赖我都会设退路,这是生产 Agent 和 Demo 的本质区别。

追问与易错

追问方向:

  • 怎么判断该用 Agent 还是 Workflow? → 看”下一步是否需要根据观察动态决策”:步骤固定可枚举就用 Workflow(更快更可控),需要自主规划并按中间结果调整才用 Agent。能规则化的决策不要交 LLM
  • 单 Agent 和多 Agent 怎么选? → 职责单一、工具不多用单 Agent;角色多/上下文互相干扰/需要并行专业分工才上多 Agent(Supervisor-Worker)。多 Agent 引入调度和失败传播复杂度,别过度设计
  • 系统设计题你最先想清楚什么? → 非功能需求和边界:延迟/成本/准确率/并发/降级/合规/多租户。功能谁都会列,约束和 tradeoff 才显资深
  • 怎么保证生产可用而不只是 Demo? → 三件事:每个依赖有降级退路、全链路可观测可审计、有评测集做回归。Demo 跑通 happy path,生产要扛住失败路径
  • 行动型 Agent 最大的风险是什么? → 误操作(删库、错误运维)。核心是工具最小权限 + 沙箱隔离 + 高危操作 Human-in-the-loop 审批,安全优先级高于成本

易错点:

  • ❌ 上来就画 ReAct 循环 → 先界定要不要 Agent、锁非功能需求,再展开架构
  • ❌ 只讲 happy path → 必须讲降级、失败传播、Checkpoint,这是资深分水岭
  • ❌ 什么都交给 LLM 决策 → 可枚举的决策用规则引擎,更快更可测更便宜
  • ❌ 忽略评测 → “你怎么知道它好用?“答不出评测体系直接掉档

项目实践(DocMind): DocMind 正是按这套框架落地的检索型 Agent:用 Supervisor-Worker 编排”意图分类→混合检索(BM25+向量+RRF)→重排→生成→条件自反思”6 步流水线(七层里的知识层+控制层);工具选择故意不交 LLM 而用 RetrievalPlanner 规则引擎(<1ms vs LLM 300ms,对应”可枚举决策走规则”);评测层用 52 query × 4 变体 × 3 轮共 624 数据点驱动 20 轮迭代;观测层用 Langfuse 做 7 步 Trace;成本层用双模型级联+语义缓存降本约 50%。每个外部依赖都有降级(rerank 挂了走 BM25、LLM 挂了回退规则路由)。